/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Sample UML2 to C++ generation
 *
 * Copyright (c) 2013 Alexander Diemand
 * All rights reserved.
 *
 * Author:     Alexander Diemand
 * Address:    Outerspace
 * Project:    Sample UML2 to C++ generation
 *
 * UML2 to C++ 
 * In easy steps from UML2 modeling to C++ coding.
 * What already works:
 * i)   generation of source and headers for enums and classes
 * ii)  the latter are: datatypes, interfaces and standard classes
 * iii) inherited static operations
 * iv)  isLeaf -> final, isReadOnly/isQuery -> const
 * What needs some work:
 * i)   templates are not yet supported
 * ii)  testing testing testing
 *
 * Repository: tbd
 * Generated:  2013-03-23 17:10:17
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#pragma once

#ifndef _dataModel_CONTROLLER_H_
#define _dataModel_CONTROLLER_H_


/**
 * @generated with Eclipse/Acceleo
 *  
 */

#include "dataModel/DataContainer.hpp"

// Start of user code for includes
#include <memory>
#include <string>
// End of user code

namespace dataModel
{

/**
 * The class Controller
 * 
 * @author Eclipse/Acceleo - model2Cpp generator
 * @generated
 */

class Controller  
{
	// Start of user code def of constructors/destructor
	public:

	// CTOR
	Controller();

	public:
	// DTOR
	virtual ~Controller();

	// do not allow copy constructor and assignment operator
	private:
    Controller(const Controller &);
    Controller & operator=(const Controller &);

	// End of user code

	// * * * * *  F I E L D S  * * * * *
	private:
	/**
	 * The field data
	 * @generated
	 */
	std::vector<DataContainer> data;
	
	

	// * * * * *  O P E R A T I O N S  * * * * *
	
	private:
	
	
	protected:
	
	
	public:
	virtual DataContainer findDataByName(const std::string & n);
	virtual void addData(const DataContainer & d);
	
	// abstracts: 
	
	
	// interfaces:
	

}; // class

} // namespace dataModel

#endif // _dataModel_CONTROLLER_H_

